package customerview;
import check.BoxRenderer;
import users.LoginFun;
import users.UsersFun;
import View.View;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

//我的订单
public class MyOrder extends JFrame {
    String username;
    public MyOrder(String username)  {
        this.username=username;
        //初始化界面
        initJFrame();
        //在这个界面添加内容
        initView();
        //让页面展示出来
        this.setVisible(true);

    }

    private void initView() {

        //添加返回主界面按钮
        JButton ReturnButton=new JButton();
        ReturnButton.setBounds(30,10,130,30);
        ReturnButton.setText("返回主界面");
        this.getContentPane().add(ReturnButton);
        //添加监听
        //.....
        ReturnButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                MyOrder.this.setVisible(false);
                new View(username);
            }
        });
        // 创建一个3行3列的默认数据模型
        DefaultTableModel model = new DefaultTableModel();

        // 如果需要可以给表格添加列名
        model.setColumnIdentifiers(new String[]{"订单号", "购买日期", "图书名字","作者","类型","出版社","购买数量","小计"});

        // 创建一个JTable实例并应用模型
        JTable table = new JTable(model){
            // 重写isCellEditable方法，使所有单元格默认不可编辑，但"EditableColumn2"列的单元格可编辑
            @Override
            public boolean isCellEditable(int row, int column) {
                // 假设我们想要"EditableColumn2"列的单元格可编辑
                // 注意：列索引是从0开始的，所以"EditableColumn2"的索引是1
                return false; // 允许第2列（索引为1）的单元格可编辑
            }
        };

        BoxRenderer centeredRenderer = new BoxRenderer();
        for (int i = 0; i < table.getColumnCount(); i++) {
            table.getColumnModel().getColumn(i).setCellRenderer(centeredRenderer);
        }
        // 可选：使用自定义渲染器或编辑器，例如复选框
         //table.getColumnModel().getColumn(0).setCellRenderer(new CheckBoxRenderer());
         //table.getColumnModel().getColumn(0).setCellEditor(new CheckBoxEditor((new JCheckBox())));

        // 使用JScrollPane包装表格以自动处理滚动条
        JScrollPane scrollPane = new JScrollPane(table);
        scrollPane.setBounds(20, 50, 660, 370); // 设置滚动面板的位置和大小
        this.getContentPane().add(scrollPane); // 将滚动面板添加到窗体的内容窗格中
        //查询全部订单信息
        JButton querybutton=new JButton();
        querybutton.setBounds(300,10,130,30);
        querybutton.setText("查询全部订单");
        this.getContentPane().add(querybutton);
        querybutton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                try {
                    UsersFun.allorder(username,model);
                    LoginFun.showJDialog("查询成功！");
                } catch (Exception ex) {
                    LoginFun.showJDialog("查询失败！");
                    //throw new RuntimeException(ex);
                }
            }
        });
        try{
            UsersFun.allorder(username,model);
        }catch (Exception e){
            throw new RuntimeException(e);
        }

        // 添加监听代码...

    }

    private void initJFrame() {
        this.setTitle("我的订单");
        this.setSize(700, 500);
        //设置页面居中
        this.setLocationRelativeTo(null);
        //设置关闭模式
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //取消按钮等元素居中放置
        this.setLayout(null);
    }
}
